package cn.hsa.fqz.task.dao;

import cn.hsa.fqz.task.entity.TTask;
import cn.hsa.fqz.task.service.dto.TaskQueryDTO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface TTaskMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(TTask record);

    int insertSelective(TTask record);

    TTask selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(TTask record);

    int updateByPrimaryKey(TTask record);

    List<TTask> getPageByCondition(@Param("param") TaskQueryDTO.Condition condition,
                                   @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    List<TTask> selectByTaskPid(Integer pid);

    List<TTask> selectByTaskCode(@Param("taskCode") String taskCode);

    List<TTask> selectByProcessAll();

    List<TTask> selectRootTaskByBelongToAndTaskCode(@Param("belongTo")String belongTo,@Param("taskCode")String taskCode);

    List<TTask> getPageSubTaskByCondition(@Param("param") TaskQueryDTO.Condition condition,
                                          @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    int isExistSubTask(@Param("pTaskId") Integer pTaskId, @Param("orgId") String orgId,@Param("belongTo") String belongTo);

    List<TTask> getPageStackTaskByCondition(@Param("param") TaskQueryDTO.Condition condition, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    List<TTask> selectParentTaskByCategoryAndDescAndPrv(@Param("category") String category,@Param("desc")String desc,@Param("prv")String prv);

    List<TTask> selectSignParentTaskByRegion(@Param("region") String region);

    List<TTask> selectSignedTaskByRegion(@Param("region") String region);

    List<String> selectPrvsByPid(@Param("pid") Integer pid);

    int finishTask(@Param("taskCode") String taskCode);

    int finishSubTask(@Param("taskId") Integer pid);

    int setIsOverDue(@Param("id") Integer id);

    String isExsitsSendTo(@Param("id")Integer id);

    int supplier(@Param("taskId") Integer taskId, @Param("supplierStatus") Integer supplierStatus);
}
